package ua.com.toltec.flymodemanager;

import ua.com.toltec.flymodemanager.R;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;

public class WidgetProvider extends AppWidgetProvider {
	
	public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";

	public void updateWidget(Context context) {
		
		AppWidgetManager appWidgetManager = AppWidgetManager
				.getInstance(context);
		RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
				R.layout.widget_initial_layout);

		Boolean state = RadioServiceUnit.isAirplaneModeOn(context);

		if (state) {
			remoteViews.setImageViewResource(R.id.button1, R.drawable.airplane);
			remoteViews.setTextViewText(R.id.TextView01, context.getString(R.string.radiooff));
		} else {
			remoteViews.setImageViewResource(R.id.button1, R.drawable.stats1);
			remoteViews.setTextViewText(R.id.TextView01, context.getString(R.string.radioon));
		}

		ComponentName widgetComponent = new ComponentName(context.getPackageName(), getClass().getName());

		// Подготавливаем Intent для Broadcast
		Intent active = new Intent(context, WidgetProvider.class);
		active.setAction(ACTION_WIDGET_RECEIVER);
		active.putExtra("appWidgetIds", widgetComponent);

		// создаем наше событие
		PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context,
				0, active, 0);

		// регистрируем наше событие
		remoteViews.setOnClickPendingIntent(R.id.button1, actionPendingIntent);
	    appWidgetManager.updateAppWidget(widgetComponent, remoteViews);
	}

	@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {

//		// Создаем новый RemoteViews
//		RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
//				R.layout.widget_initial_layout);
//
//		// Подготавливаем Intent для Broadcast
//		Intent active = new Intent(context, WidgetProvider.class);
//		active.setAction(ACTION_WIDGET_RECEIVER);
//		active.putExtra("appWidgetIds", appWidgetIds);
//
//		// создаем наше событие
//		PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context,
//				0, active, 0);
//
//		// регистрируем наше событие
//		remoteViews.setOnClickPendingIntent(R.id.button1, actionPendingIntent);
//
//		//Toast.makeText(context, "onUpdate", Toast.LENGTH_SHORT).show();
//		// обновляем виджет
//		appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
		
		updateWidget(context);
		
	}

	@Override
	public void onReceive(Context context, Intent intent) {

		// Ловим наш Broadcast, проверяем и выводим сообщение
		final String action = intent.getAction();
		if (ACTION_WIDGET_RECEIVER.equals(action)) {
			try {
				Toast.makeText(context, context.getString(R.string.app_name), Toast.LENGTH_SHORT).show();
				RadioServiceUnit.setAirplaneMode(context);
			} catch (NullPointerException e) {
				Log.e("Error", "msg = null");
			}
		} else {
		}
		updateWidget(context);
		super.onReceive(context, intent);
	}

}